Implementing Eg-walker Text CRDT in Scala

Project

Replicated data types (RDTs) such as CRDTs are becoming increasingly popular as a simplified way for programming distributed systems. RDTs are local data structures with a familiar interface (such as sets, lists, trees) that can automatically synchronize data between multiple devices in the background. Besides these simpler data types, a common use of RDTs is shared document editing (think Google Docs but decentralized).

In this project, you will learn how efficient and semantically sensible text CRDTs work internally. At the end of this project you will (hopefully) have a Scala implementation of the text CRDT that is described in the paper along with tests, benchmarks and a bit of evaluation.

Starting Points: